const express = require("express");
const bodyParser = require('body-parser');
const ejs = require("ejs");
const session = require("express-session");
const cors = require("cors");

const app = express();

const config = require("./config/config");

//引入外部模块
const admin = require("./routes/admin");
const index = require("./routes/index");
const api = require("./routes/api");

// 允许跨域
app.use(cors());

//配置模板引擎
app.engine("html",ejs.__express);
app.set("view engine","html");

//配置静态web目录
app.use(express.static("static"));

//配置第三方中间件
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// 配置 session的中间件
app.use(session({
    secret: 'this is session', // 服务器端生成 session 的签名
    name:"itying", // 修改 session 对应 cookie 的名称
    resave: false, // 强制保存 session 即使它并没有变化
    saveUninitialized: true, // 强制将未初始化的 session 存储
    cookie: {
      maxAge:1000*60*30,
      secure: false // true 表示只有 https 协议才能访问 cookie
    },
    rolling:true // 在每次请求时强行设置 cookie，这将重置 cookie 过期时间（默认：false）
}));

//配置外部路由模块
app.use("/"+config.adminPath, admin);
app.use("/api", api);
app.use("/", index);

// 绑定全局模板变量
app.locals.adminPath = config.adminPath;

//监听端口  端口号建议写成3000以上
app.listen(3000, () => {
    console.log(`Server run at http://127.0.0.1:3000`);
});